home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 1 / Cream of the Crop 1.iso / PROGRAM / UCRASM25.ARJ / COPYSET.ASM < prev    next >
Assembly Source File  |  1991-10-12  |  950b  |  63 lines

  1. StdGrp        group    stdlib,stddata
  2. stddata        segment    para public 'sldata'
  3. stddata        ends
  4. ;
  5. stdlib        segment    para public 'slcode'
  6.         assume    cs:stdgrp
  7. ;
  8. ;
  9. ; CopySet-    Copies one set to another.
  10. ;
  11. ; inputs:
  12. ;
  13. ;    ES:DI-  Points at the destination set (at its mask byte).
  14. ;    DX:SI-    Points at the mask byte of the source set.
  15. ;
  16. ;
  17. ;
  18.         public    sl_CopySet
  19. ;
  20. sl_CopySet    proc    far
  21.         push    ds
  22.         push    es
  23.         push    ax
  24.         push    cx
  25.                 push    dx
  26.         push    si
  27.         push    di
  28.         mov    ds, dx
  29. ;
  30.         mov    ah, es:[di]        ;Get mask bytes
  31.         mov    al, [si]
  32.         mov    dl, ah
  33.         not    dl
  34.         add    si, 8            ;Skip to start of set
  35.                 add    di, 8
  36.         mov    cx, 256
  37. CpySetLp:    test    al, [si]
  38.         jnz    SetBit
  39.         and    es:[di], dl
  40.         inc    si
  41.         inc    di
  42.         loop    CpySetLp
  43.         jmp    CpySetDone
  44. ;
  45. SetBit:        or    es:[di], ah
  46.         inc    si
  47.         inc    di
  48.         loop    CpySetLp
  49. ;
  50. CpySetDone:    pop    di
  51.         pop    si
  52.         pop    dx
  53.         pop    cx
  54.         pop    ax
  55.         pop    es
  56.         pop    ds
  57.         ret
  58. sl_CopySet    endp
  59. ;
  60. ;
  61. stdlib        ends
  62.         end
  63.